package hhm.android.library.getPictureOrTakePhoto;

import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;

import hhm.android.library.R;
import hhm.android.library.utils.OnMultiClickListener;

public class TakePhotoPopWindow extends PopupWindow {

    private Context mContext;

    private View view;

    private TextView btn_take_photo, btn_pick_photo, btn_cancel;

    public TakePhotoPopWindow(Context mContext, OnMultiClickListener photoClick, OnMultiClickListener pictureClick) {

        this.view = LayoutInflater.from(mContext).inflate(R.layout.get_picture_take_photo, null);

        btn_take_photo = view.findViewById(R.id.btn_take_photo);
        btn_pick_photo = view.findViewById(R.id.btn_pick_photo);
        btn_cancel = view.findViewById(R.id.btn_cancel);
        //取消按钮
        btn_cancel.setOnClickListener(v -> {
            //销毁弹出框
            dismiss();
        });
        //设置按钮监听
        btn_pick_photo.setOnClickListener(v -> {
            dismiss();
            pictureClick.onMultiClick(v);
        });
        btn_take_photo.setOnClickListener(v -> {
            dismiss();
            photoClick.onMultiClick(v);
        });

        //设置外部可点击
        this.setOutsideTouchable(true);
        //mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
        this.view.setOnTouchListener((v, event) -> {

            int height = view.findViewById(R.id.pop_layout).getTop();

            int y = (int) event.getY();
            if (event.getAction() == MotionEvent.ACTION_UP) {
                if (y < height) {
                    dismiss();
                }
            }
            return true;
        });


        /* 设置弹出窗口特征 */
        // 设置视图
        this.setContentView(this.view);
        // 设置弹出窗体的宽和高
        this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
        this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);

        // 设置弹出窗体可点击
        this.setFocusable(true);

        // 实例化一个ColorDrawable颜色为半透明
        ColorDrawable dw = new ColorDrawable(0xb0000000);
        // 设置弹出窗体的背景
        this.setBackgroundDrawable(dw);

        // 设置弹出窗体显示时的动画，从底部向上弹出
        this.setAnimationStyle(R.style.take_photo_anim);

    }
} 